home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / general / viewers / prev / prev.lha / lex.c < prev    next >
C/C++ Source or Header  |  1991-03-20  |  41KB  |  3,062 lines

  1. # include "stdio.h"
  2. # define U(x) x
  3. # define NLSTATE yyprevious=YYNEWLINE
  4. # define BEGIN yybgin = yysvec + 1 +
  5. # define INITIAL 0
  6. # define YYLERR yysvec
  7. # define YYSTATE (yyestate-yysvec-1)
  8. # define YYOPTIM 1
  9. # define YYLMAX BUFSIZ
  10. # define output(c) putc(c,yyout)
  11. # define input() (((yytchar=yysptr>yysbuf?U(*--yysptr):getc(yyin))==10?(yylineno++,yytchar):yytchar)==EOF?0:yytchar)
  12. # define unput(c) {yytchar= (c);if(yytchar=='\n')yylineno--;*yysptr++=yytchar;}
  13. # define yymore() (yymorfg=1)
  14. # define ECHO fprintf(yyout, "%s",yytext)
  15. # define REJECT { nstr = yyreject(); goto yyfussy;}
  16. int yyleng; extern char yytext[];
  17. int yymorfg;
  18. extern char *yysptr, yysbuf[];
  19. int yytchar;
  20. FILE *yyin = {stdin}, *yyout = {stdout};
  21. extern int yylineno;
  22. struct yysvf { 
  23.     struct yywork *yystoff;
  24.     struct yysvf *yyother;
  25.     int *yystops;};
  26. struct yysvf *yyestate;
  27. extern struct yysvf yysvec[], *yybgin;
  28. #include <math.h>
  29. #include "art.h"
  30. #include "objs.h"
  31. #include "gram.h"
  32.  
  33. extern int    linecount;
  34.  
  35. extern char    currentfile[];
  36.  
  37. extern symbol    *lookup();
  38.  
  39. extern double    atof();
  40.  
  41. # define YYNEWLINE 10
  42. yylex(){
  43. int nstr; extern int yyprevious;
  44. while((nstr = yylook()) >= 0)
  45. yyfussy: switch(nstr){
  46. case 0:
  47. if(yywrap()) return(0); break;
  48. case 1:
  49. return(PERSPECTIVE);
  50. break;
  51. case 2:
  52. return(ORTHOGRAPHIC);
  53. break;
  54. case 3:
  55. return(PROJECTION);
  56. break;
  57. case 4:
  58. return(MAXTREEDEPTH);
  59. break;
  60. case 5:
  61. return(SCREENSIZE);
  62. break;
  63. case 6:
  64.     return(SOURCE);
  65. break;
  66. case 7:
  67. return(AMPLITUDE);
  68. break;
  69. case 8:
  70. return(WAVELENGTH);
  71. break;
  72. case 9:
  73.     return(DAMPING);
  74. break;
  75. case 10:
  76.     return(PHASE);
  77. break;
  78. case 11:
  79. return(SCALEFACTOR);
  80. break;
  81. case 12:
  82. return(SOURCERADIUS);
  83. break;
  84. case 13:
  85. return(TURBULENCE);
  86. break;
  87. case 14:
  88.     return(SQUEEZE);
  89. break;
  90. case 15:
  91.     return(OFFFILE);
  92. break;
  93. case 16:
  94.     return(OFFFILE);
  95. break;
  96. case 17:
  97. return(COLOURFILE);
  98. break;
  99. case 18:
  100. return(NORMALFILE);
  101. break;
  102. case 19:
  103. return(VNORMALFILE);
  104. break;
  105. case 20:
  106. return(VORTFILE);
  107. break;
  108. case 21:
  109.     return(TOP);
  110. break;
  111. case 22:
  112.     return(BASE);
  113. break;
  114. case 23:
  115. return(CONST);
  116. break;
  117. case 24:
  118. return(COEFFS);
  119. break;
  120. case 25:
  121.     return(ORDER);
  122. break;
  123. case 26:
  124.     return(CSG);
  125. break;
  126. case 27:
  127. return(COMPOSITE);
  128. break;
  129. case 28:
  130. {
  131.             yylval.y_int = PHONGSHADING;
  132.             return(OPTION);
  133.         }
  134. break;
  135. case 29:
  136. {
  137.             yylval.y_int = ART_BACKFACING;
  138.             return(OPTION);
  139.         }
  140. break;
  141. case 30:
  142.     return(ON);
  143. break;
  144. case 31:
  145.     return(OFF);
  146. break;
  147. case 32:
  148. return(MATERIAL);
  149. break;
  150. case 33:
  151.     return(CENTER);
  152. break;
  153. case 34:
  154.     return(COLOUR);
  155. break;
  156. case 35:
  157.     return(AMBIENT);
  158. break;
  159. case 36:
  160. return(REFLECTANCE);
  161. break;
  162. case 37:
  163. return(ABSORPTION);
  164. break;
  165. case 38:
  166. return(TRANSPARENCY);
  167. break;
  168. case 39:
  169. return(HAZECOLOUR);
  170. break;
  171. case 40:
  172. return(FOGFACTOR);
  173. break;
  174. case 41:
  175.     return(RFACTOR);
  176. break;
  177. case 42:
  178.     return(FALLOFF);
  179. break;
  180. case 43:
  181.     return(RI);
  182. break;
  183. case 44:
  184.     return(REPEAT);
  185. break;
  186. case 45:
  187.     return(RADIUS);
  188. break;
  189. case 46:
  190.     return(RADII);
  191. break;
  192. case 47:
  193.     return(LIGHT);
  194. break;
  195. case 48:
  196. return(DIRECTION);
  197. break;
  198. case 49:
  199.     return(ANGLE);
  200. break;
  201. case 50:
  202. return(INSIDEANGLE);
  203. break;
  204. case 51:
  205. return(BEAMDISTRIBUTION);
  206. break;
  207. case 52:
  208.     return(NUMRAYS);
  209. break;
  210. case 53:
  211.     return(VERTEX);
  212. break;
  213. case 54:
  214. return(LOCATION);
  215. break;
  216. case 55:
  217.     return(TILE);
  218. break;
  219. case 56:
  220.     return(TEXTURE);
  221. break;
  222. case 57:
  223.     return(MAP);
  224. break;
  225. case 58:
  226. return(COLOURMAP);
  227. break;
  228. case 59:
  229.     return(RANGE);
  230. break;
  231. case 60:
  232.     return(BLEND);
  233. break;
  234. case 61:
  235. return(BLENDCOLOR);
  236. break;
  237. case 62:
  238. return(SCALEFACTORS);
  239. break;
  240. case 63:
  241.     return(SIZE);
  242. break;
  243. case 64:
  244. return(EQUATION);
  245. break;
  246. case 65:
  247. return(ART_TRANSLATE);
  248. break;
  249. case 66:
  250.     return(ART_ROTATE);
  251. break;
  252. case 67:
  253.     return(ART_SCALE);
  254. break;
  255. case 68:
  256.     return(LOOKAT);
  257. break;
  258. case 69:
  259.     return(UP);
  260. break;
  261. case 70:
  262. return(FIELDOFVIEW);
  263. break;
  264. case 71:
  265. return(RAYSPERPIXEL);
  266. break;
  267. case 72:
  268. return(PIXELGRID);
  269. break;
  270. case 73:
  271.     return(SHADOWS);
  272. break;
  273. case 74:
  274.     return(TITLE);
  275. break;
  276. case 75:
  277. return(BACKGROUND);
  278. break;
  279. case 76:
  280. return(MAXHITLEVEL);
  281. break;
  282. case 77:
  283.     return(OUTPUT);
  284. break;
  285. case 78:
  286. return(TWENTYFIVEBIT);
  287. break;
  288. case 79:
  289.     {
  290.             yylval.y_int = PIX_RGB;
  291.             return(FILETYPE);
  292.         }
  293. break;
  294. case 80:
  295.     {
  296.             yylval.y_int = PIX_RLE;
  297.             return(FILETYPE);
  298.         }
  299. break;
  300. case 81:
  301.     {
  302.             yylval.y_int = PIX_RGBA;
  303.             return(FILETYPE);
  304.         }
  305. break;
  306. case 82:
  307.     {
  308.             yylval.y_int = PIX_RLEA;
  309.             return(FILETYPE);
  310.         }
  311. break;
  312. case 83:
  313. {
  314.             if ((yylval.y_sym = lookup(yytext)) != (symbol *)NULL)
  315.                 return(OBJECT_TYPE);
  316.             else {
  317.                 yylval.y_str = (char *)smalloc(strlen(yytext) + 1);
  318.                 strcpy(yylval.y_str, yytext);
  319.  
  320.                 return(NAME);
  321.             }
  322.         }
  323. break;
  324. case 84:
  325. {
  326.             yylval.y_int = atoi(yytext);
  327.             return(INTEGER);
  328.         }
  329. break;
  330. case 85:
  331. {
  332.             yylval.y_flt = atof(yytext);
  333.             return(FLOAT);
  334.         }
  335. break;
  336. case 86:
  337.     return(PLUS);
  338. break;
  339. case 87:
  340.     return(MINUS);
  341. break;
  342. case 88:
  343.     return(DIV);
  344. break;
  345. case 89:
  346.     return(MULT);
  347. break;
  348. case 90:
  349.     return(PCENT);
  350. break;
  351. case 91:
  352.     return(POWER);
  353. break;
  354. case 92:
  355.     return(COMMA);
  356. break;
  357. case 93:
  358.     return(LP);
  359. break;
  360. case 94:
  361.     return(RP);
  362. break;
  363. case 95:
  364.     return(EQUALS);
  365. break;
  366. case 96:
  367.     return(DOLS);
  368. break;
  369. case 97:
  370.     {
  371.             char    buf[BUFSIZ], *p;
  372.             
  373.             for (p = buf; (*p = getchar()) != '"'; p++)
  374.                 if (*p == '\n' || *p == EOF)
  375.                     yyerror("syntax error");
  376.  
  377.             *p = 0;
  378.  
  379.             yylval.y_str = (char *)smalloc(strlen(buf) + 1);
  380.             strcpy(yylval.y_str, buf);
  381.  
  382.             return(NAME);
  383.         }
  384. break;
  385. case 98:
  386.     {
  387.             return(LBRACE);
  388.         }
  389. break;
  390. case 99:
  391.     {
  392.             return(RBRACE);
  393.         }
  394. break;
  395. case 100:
  396.     return(QUOTE);
  397. break;
  398. case 101:
  399.     {
  400.             linecount++;
  401.         }
  402. break;
  403. case 102:
  404.     {
  405.             ;
  406.         }
  407. break;
  408. case 103:
  409.     {
  410.             int    c, i, j;
  411.             char    buf[BUFSIZ], *p;
  412.  
  413.             i = 0;
  414.             while ((buf[i] = getchar()) != '\n' && !feof(stdin))
  415.                 i++;
  416.  
  417.             if (sscanf(buf, "%d", &linecount) != 1)
  418.                 linecount++;
  419.             else {
  420.                 for (p = buf; p != &buf[i]; p++)
  421.                     if (*p == '"')
  422.                         break;
  423.  
  424.                 if (p == &buf[i])
  425.                     linecount++;
  426.                 else {
  427.                     j = 0;
  428.                     p++;
  429.                     while (*p != '"' && p != &buf[i])
  430.                         currentfile[j++] = *p++;
  431.                     currentfile[j] = 0;
  432.                 }
  433.             }
  434.         }
  435. break;
  436. case 104:
  437.     {
  438.             int    c1, c2;
  439.             int    comline, incomment = 1;
  440.             char    buf[BUFSIZ];
  441.  
  442.             comline = linecount;
  443.  
  444.             do {
  445.                 while ((c1 = getchar()) != '*' && c1 != '/' && c1 != EOF)
  446.                     if (c1 == '\n')
  447.                         linecount++;
  448.  
  449.                 c2 = getchar();
  450.                 if (c2 == '\n')
  451.                     linecount++;
  452.  
  453.                 if (c1 == '*' && c2 == '/')
  454.                     incomment--;
  455.  
  456.                 if (c1 == '/' && c2 == '*') {
  457.                     incomment++;
  458.                     comline = linecount;
  459.                 }
  460.  
  461.             } while (incomment && c2 != EOF);
  462.  
  463.             if (c1 == EOF || c2 == EOF) {
  464.                 sprintf(buf, "art: unterminated comment - started line %d.\n", comline);
  465.                 fatal(buf);
  466.             }
  467.         }
  468. break;
  469. case -1:
  470. break;
  471. default:
  472. fprintf(yyout,"bad switch yylook %d",nstr);
  473. } return(0); }
  474. /* end of yylex */
  475. int yyvstop[] = {
  476. 0,
  477.  
  478. 84,
  479. 0,
  480.  
  481. 84,
  482. 0,
  483.  
  484. 102,
  485. 0,
  486.  
  487. 101,
  488. 0,
  489.  
  490. 97,
  491. 0,
  492.  
  493. 103,
  494. 0,
  495.  
  496. 90,
  497. 0,
  498.  
  499. 100,
  500. 0,
  501.  
  502. 93,
  503. 0,
  504.  
  505. 94,
  506. 0,
  507.  
  508. 89,
  509. 0,
  510.  
  511. 86,
  512. 0,
  513.  
  514. 92,
  515. 0,
  516.  
  517. 87,
  518. 0,
  519.  
  520. 85,
  521. 0,
  522.  
  523. 88,
  524. 0,
  525.  
  526. 84,
  527. 0,
  528.  
  529. 95,
  530. 0,
  531.  
  532. 83,
  533. 0,
  534.  
  535. 91,
  536. 0,
  537.  
  538. 83,
  539. 0,
  540.  
  541. 83,
  542. 0,
  543.  
  544. 83,
  545. 0,
  546.  
  547. 83,
  548. 0,
  549.  
  550. 83,
  551. 0,
  552.  
  553. 83,
  554. 0,
  555.  
  556. 83,
  557. 0,
  558.  
  559. 83,
  560. 0,
  561.  
  562. 83,
  563. 0,
  564.  
  565. 83,
  566. 0,
  567.  
  568. 83,
  569. 0,
  570.  
  571. 83,
  572. 0,
  573.  
  574. 83,
  575. 0,
  576.  
  577. 83,
  578. 0,
  579.  
  580. 83,
  581. 0,
  582.  
  583. 83,
  584. 0,
  585.  
  586. 83,
  587. 0,
  588.  
  589. 83,
  590. 0,
  591.  
  592. 83,
  593. 0,
  594.  
  595. 83,
  596. 0,
  597.  
  598. 98,
  599. 0,
  600.  
  601. 99,
  602. 0,
  603.  
  604. 96,
  605. 0,
  606.  
  607. 104,
  608. 0,
  609.  
  610. 83,
  611. 0,
  612.  
  613. 83,
  614. 0,
  615.  
  616. 83,
  617. 0,
  618.  
  619. 83,
  620. 0,
  621.  
  622. 83,
  623. 0,
  624.  
  625. 83,
  626. 0,
  627.  
  628. 83,
  629. 0,
  630.  
  631. 83,
  632. 0,
  633.  
  634. 83,
  635. 0,
  636.  
  637. 83,
  638. 0,
  639.  
  640. 83,
  641. 0,
  642.  
  643. 83,
  644. 0,
  645.  
  646. 83,
  647. 0,
  648.  
  649. 83,
  650. 0,
  651.  
  652. 83,
  653. 0,
  654.  
  655. 83,
  656. 0,
  657.  
  658. 83,
  659. 0,
  660.  
  661. 83,
  662. 0,
  663.  
  664. 83,
  665. 0,
  666.  
  667. 83,
  668. 0,
  669.  
  670. 83,
  671. 0,
  672.  
  673. 83,
  674. 0,
  675.  
  676. 83,
  677. 0,
  678.  
  679. 83,
  680. 0,
  681.  
  682. 30,
  683. 83,
  684. 0,
  685.  
  686. 83,
  687. 0,
  688.  
  689. 83,
  690. 0,
  691.  
  692. 83,
  693. 0,
  694.  
  695. 83,
  696. 0,
  697.  
  698. 83,
  699. 0,
  700.  
  701. 83,
  702. 0,
  703.  
  704. 83,
  705. 0,
  706.  
  707. 83,
  708. 0,
  709.  
  710. 83,
  711. 0,
  712.  
  713. 83,
  714. 0,
  715.  
  716. 43,
  717. 83,
  718. 0,
  719.  
  720. 83,
  721. 0,
  722.  
  723. 83,
  724. 0,
  725.  
  726. 83,
  727. 0,
  728.  
  729. 83,
  730. 0,
  731.  
  732. 83,
  733. 0,
  734.  
  735. 83,
  736. 0,
  737.  
  738. 83,
  739. 0,
  740.  
  741. 83,
  742. 0,
  743.  
  744. 83,
  745. 0,
  746.  
  747. 83,
  748. 0,
  749.  
  750. 83,
  751. 0,
  752.  
  753. 83,
  754. 0,
  755.  
  756. 83,
  757. 0,
  758.  
  759. 69,
  760. 83,
  761. 0,
  762.  
  763. 83,
  764. 0,
  765.  
  766. 83,
  767. 0,
  768.  
  769. 83,
  770. 0,
  771.  
  772. 83,
  773. 0,
  774.  
  775. 83,
  776. 0,
  777.  
  778. 83,
  779. 0,
  780.  
  781. 83,
  782. 0,
  783.  
  784. 83,
  785. 0,
  786.  
  787. 83,
  788. 0,
  789.  
  790. 83,
  791. 0,
  792.  
  793. 83,
  794. 0,
  795.  
  796. 83,
  797. 0,
  798.  
  799. 83,
  800. 0,
  801.  
  802. 83,
  803. 0,
  804.  
  805. 83,
  806. 0,
  807.  
  808. 83,
  809. 0,
  810.  
  811. 83,
  812. 0,
  813.  
  814. 26,
  815. 83,
  816. 0,
  817.  
  818. 83,
  819. 0,
  820.  
  821. 83,
  822. 0,
  823.  
  824. 83,
  825. 0,
  826.  
  827. 83,
  828. 0,
  829.  
  830. 83,
  831. 0,
  832.  
  833. 83,
  834. 0,
  835.  
  836. 83,
  837. 0,
  838.  
  839. 83,
  840. 0,
  841.  
  842. 83,
  843. 0,
  844.  
  845. 83,
  846. 0,
  847.  
  848. 83,
  849. 0,
  850.  
  851. 83,
  852. 0,
  853.  
  854. 57,
  855. 83,
  856. 0,
  857.  
  858. 83,
  859. 0,
  860.  
  861. 83,
  862. 0,
  863.  
  864. 83,
  865. 0,
  866.  
  867. 83,
  868. 0,
  869.  
  870. 31,
  871. 83,
  872. 0,
  873.  
  874. 83,
  875. 0,
  876.  
  877. 83,
  878. 0,
  879.  
  880. 83,
  881. 0,
  882.  
  883. 83,
  884. 0,
  885.  
  886. 83,
  887. 0,
  888.  
  889. 83,
  890. 0,
  891.  
  892. 83,
  893. 0,
  894.  
  895. 83,
  896. 0,
  897.  
  898. 83,
  899. 0,
  900.  
  901. 83,
  902. 0,
  903.  
  904. 83,
  905. 0,
  906.  
  907. 83,
  908. 0,
  909.  
  910. 83,
  911. 0,
  912.  
  913. 83,
  914. 0,
  915.  
  916. 79,
  917. 83,
  918. 0,
  919.  
  920. 80,
  921. 83,
  922. 0,
  923.  
  924. 83,
  925. 0,
  926.  
  927. 83,
  928. 0,
  929.  
  930. 83,
  931. 0,
  932.  
  933. 83,
  934. 0,
  935.  
  936. 83,
  937. 0,
  938.  
  939. 83,
  940. 0,
  941.  
  942. 83,
  943. 0,
  944.  
  945. 83,
  946. 0,
  947.  
  948. 83,
  949. 0,
  950.  
  951. 83,
  952. 0,
  953.  
  954. 21,
  955. 83,
  956. 0,
  957.  
  958. 83,
  959. 0,
  960.  
  961. 83,
  962. 0,
  963.  
  964. 83,
  965. 0,
  966.  
  967. 83,
  968. 0,
  969.  
  970. 83,
  971. 0,
  972.  
  973. 83,
  974. 0,
  975.  
  976. 83,
  977. 0,
  978.  
  979. 83,
  980. 0,
  981.  
  982. 83,
  983. 0,
  984.  
  985. 83,
  986. 0,
  987.  
  988. 83,
  989. 0,
  990.  
  991. 83,
  992. 0,
  993.  
  994. 22,
  995. 83,
  996. 0,
  997.  
  998. 83,
  999. 0,
  1000.  
  1001. 83,
  1002. 0,
  1003.  
  1004. 83,
  1005. 0,
  1006.  
  1007. 83,
  1008. 0,
  1009.  
  1010. 83,
  1011. 0,
  1012.  
  1013. 83,
  1014. 0,
  1015.  
  1016. 83,
  1017. 0,
  1018.  
  1019. 83,
  1020. 0,
  1021.  
  1022. 83,
  1023. 0,
  1024.  
  1025. 83,
  1026. 0,
  1027.  
  1028. 83,
  1029. 0,
  1030.  
  1031. 83,
  1032. 0,
  1033.  
  1034. 83,
  1035. 0,
  1036.  
  1037. 83,
  1038. 0,
  1039.  
  1040. 83,
  1041. 0,
  1042.  
  1043. 83,
  1044. 0,
  1045.  
  1046. 83,
  1047. 0,
  1048.  
  1049. 83,
  1050. 0,
  1051.  
  1052. 83,
  1053. 0,
  1054.  
  1055. 83,
  1056. 0,
  1057.  
  1058. 83,
  1059. 0,
  1060.  
  1061. 83,
  1062. 0,
  1063.  
  1064. 83,
  1065. 0,
  1066.  
  1067. 83,
  1068. 0,
  1069.  
  1070. 83,
  1071. 0,
  1072.  
  1073. 83,
  1074. 0,
  1075.  
  1076. 83,
  1077. 0,
  1078.  
  1079. 83,
  1080. 0,
  1081.  
  1082. 83,
  1083. 0,
  1084.  
  1085. 83,
  1086. 0,
  1087.  
  1088. 83,
  1089. 0,
  1090.  
  1091. 83,
  1092. 0,
  1093.  
  1094. 83,
  1095. 0,
  1096.  
  1097. 83,
  1098. 0,
  1099.  
  1100. 83,
  1101. 0,
  1102.  
  1103. 83,
  1104. 0,
  1105.  
  1106. 83,
  1107. 0,
  1108.  
  1109. 83,
  1110. 0,
  1111.  
  1112. 83,
  1113. 0,
  1114.  
  1115. 81,
  1116. 83,
  1117. 0,
  1118.  
  1119. 82,
  1120. 83,
  1121. 0,
  1122.  
  1123. 83,
  1124. 0,
  1125.  
  1126. 83,
  1127. 0,
  1128.  
  1129. 83,
  1130. 0,
  1131.  
  1132. 83,
  1133. 0,
  1134.  
  1135. 63,
  1136. 83,
  1137. 0,
  1138.  
  1139. 83,
  1140. 0,
  1141.  
  1142. 83,
  1143. 0,
  1144.  
  1145. 83,
  1146. 0,
  1147.  
  1148. 55,
  1149. 83,
  1150. 0,
  1151.  
  1152. 83,
  1153. 0,
  1154.  
  1155. 83,
  1156. 0,
  1157.  
  1158. 83,
  1159. 0,
  1160.  
  1161. 83,
  1162. 0,
  1163.  
  1164. 83,
  1165. 0,
  1166.  
  1167. 83,
  1168. 0,
  1169.  
  1170. 83,
  1171. 0,
  1172.  
  1173. 83,
  1174. 0,
  1175.  
  1176. 83,
  1177. 0,
  1178.  
  1179. 83,
  1180. 0,
  1181.  
  1182. 83,
  1183. 0,
  1184.  
  1185. 49,
  1186. 83,
  1187. 0,
  1188.  
  1189. 83,
  1190. 0,
  1191.  
  1192. 83,
  1193. 0,
  1194.  
  1195. 83,
  1196. 0,
  1197.  
  1198. 60,
  1199. 83,
  1200. 0,
  1201.  
  1202. 83,
  1203. 0,
  1204.  
  1205. 83,
  1206. 0,
  1207.  
  1208. 34,
  1209. 83,
  1210. 0,
  1211.  
  1212. 83,
  1213. 0,
  1214.  
  1215. 83,
  1216. 0,
  1217.  
  1218. 83,
  1219. 0,
  1220.  
  1221. 83,
  1222. 0,
  1223.  
  1224. 83,
  1225. 0,
  1226.  
  1227. 83,
  1228. 0,
  1229.  
  1230. 83,
  1231. 0,
  1232.  
  1233. 83,
  1234. 0,
  1235.  
  1236. 83,
  1237. 0,
  1238.  
  1239. 83,
  1240. 0,
  1241.  
  1242. 83,
  1243. 0,
  1244.  
  1245. 83,
  1246. 0,
  1247.  
  1248. 47,
  1249. 83,
  1250. 0,
  1251.  
  1252. 83,
  1253. 0,
  1254.  
  1255. 83,
  1256. 0,
  1257.  
  1258. 83,
  1259. 0,
  1260.  
  1261. 83,
  1262. 0,
  1263.  
  1264. 83,
  1265. 0,
  1266.  
  1267. 83,
  1268. 0,
  1269.  
  1270. 83,
  1271. 0,
  1272.  
  1273. 83,
  1274. 0,
  1275.  
  1276. 25,
  1277. 83,
  1278. 0,
  1279.  
  1280. 83,
  1281. 0,
  1282.  
  1283. 83,
  1284. 0,
  1285.  
  1286. 83,
  1287. 0,
  1288.  
  1289. 10,
  1290. 83,
  1291. 0,
  1292.  
  1293. 83,
  1294. 0,
  1295.  
  1296. 83,
  1297. 0,
  1298.  
  1299. 83,
  1300. 0,
  1301.  
  1302. 46,
  1303. 83,
  1304. 0,
  1305.  
  1306. 83,
  1307. 0,
  1308.  
  1309. 59,
  1310. 83,
  1311. 0,
  1312.  
  1313. 83,
  1314. 0,
  1315.  
  1316. 83,
  1317. 0,
  1318.  
  1319. 83,
  1320. 0,
  1321.  
  1322. 83,
  1323. 0,
  1324.  
  1325. 83,
  1326. 0,
  1327.  
  1328. 67,
  1329. 83,
  1330. 0,
  1331.  
  1332. 83,
  1333. 0,
  1334.  
  1335. 83,
  1336. 0,
  1337.  
  1338. 83,
  1339. 0,
  1340.  
  1341. 83,
  1342. 0,
  1343.  
  1344. 83,
  1345. 0,
  1346.  
  1347. 74,
  1348. 83,
  1349. 0,
  1350.  
  1351. 83,
  1352. 0,
  1353.  
  1354. 83,
  1355. 0,
  1356.  
  1357. 83,
  1358. 0,
  1359.  
  1360. 83,
  1361. 0,
  1362.  
  1363. 83,
  1364. 0,
  1365.  
  1366. 83,
  1367. 0,
  1368.  
  1369. 83,
  1370. 0,
  1371.  
  1372. 83,
  1373. 0,
  1374.  
  1375. 83,
  1376. 0,
  1377.  
  1378. 83,
  1379. 0,
  1380.  
  1381. 83,
  1382. 0,
  1383.  
  1384. 83,
  1385. 0,
  1386.  
  1387. 83,
  1388. 0,
  1389.  
  1390. 83,
  1391. 0,
  1392.  
  1393. 33,
  1394. 83,
  1395. 0,
  1396.  
  1397. 83,
  1398. 0,
  1399.  
  1400. 83,
  1401. 0,
  1402.  
  1403. 83,
  1404. 0,
  1405.  
  1406. 83,
  1407. 0,
  1408.  
  1409. 83,
  1410. 0,
  1411.  
  1412. 83,
  1413. 0,
  1414.  
  1415. 83,
  1416. 0,
  1417.  
  1418. 83,
  1419. 0,
  1420.  
  1421. 83,
  1422. 0,
  1423.  
  1424. 83,
  1425. 0,
  1426.  
  1427. 83,
  1428. 0,
  1429.  
  1430. 83,
  1431. 0,
  1432.  
  1433. 83,
  1434. 0,
  1435.  
  1436. 83,
  1437. 0,
  1438.  
  1439. 83,
  1440. 0,
  1441.  
  1442. 68,
  1443. 83,
  1444. 0,
  1445.  
  1446. 83,
  1447. 0,
  1448.  
  1449. 83,
  1450. 0,
  1451.  
  1452. 83,
  1453. 0,
  1454.  
  1455. 83,
  1456. 0,
  1457.  
  1458. 83,
  1459. 0,
  1460.  
  1461. 83,
  1462. 0,
  1463.  
  1464. 83,
  1465. 0,
  1466.  
  1467. 77,
  1468. 83,
  1469. 0,
  1470.  
  1471. 83,
  1472. 0,
  1473.  
  1474. 83,
  1475. 0,
  1476.  
  1477. 83,
  1478. 0,
  1479.  
  1480. 83,
  1481. 0,
  1482.  
  1483. 45,
  1484. 83,
  1485. 0,
  1486.  
  1487. 83,
  1488. 0,
  1489.  
  1490. 83,
  1491. 0,
  1492.  
  1493. 44,
  1494. 83,
  1495. 0,
  1496.  
  1497. 83,
  1498. 0,
  1499.  
  1500. 66,
  1501. 83,
  1502. 0,
  1503.  
  1504. 83,
  1505. 0,
  1506.  
  1507. 83,
  1508. 0,
  1509.  
  1510. 83,
  1511. 0,
  1512.  
  1513. 6,
  1514. 83,
  1515. 0,
  1516.  
  1517. 83,
  1518. 0,
  1519.  
  1520. 83,
  1521. 0,
  1522.  
  1523. 83,
  1524. 0,
  1525.  
  1526. 83,
  1527. 0,
  1528.  
  1529. 83,
  1530. 0,
  1531.  
  1532. 83,
  1533. 0,
  1534.  
  1535. 53,
  1536. 83,
  1537. 0,
  1538.  
  1539. 83,
  1540. 0,
  1541.  
  1542. 83,
  1543. 0,
  1544.  
  1545. 83,
  1546. 0,
  1547.  
  1548. 83,
  1549. 0,
  1550.  
  1551. 35,
  1552. 83,
  1553. 0,
  1554.  
  1555. 83,
  1556. 0,
  1557.  
  1558. 83,
  1559. 0,
  1560.  
  1561. 83,
  1562. 0,
  1563.  
  1564. 83,
  1565. 0,
  1566.  
  1567. 83,
  1568. 0,
  1569.  
  1570. 83,
  1571. 0,
  1572.  
  1573. 83,
  1574. 0,
  1575.  
  1576. 83,
  1577. 0,
  1578.  
  1579. 83,
  1580. 0,
  1581.  
  1582. 83,
  1583. 0,
  1584.  
  1585. 9,
  1586. 83,
  1587. 0,
  1588.  
  1589. 83,
  1590. 0,
  1591.  
  1592. 83,
  1593. 0,
  1594.  
  1595. 42,
  1596. 83,
  1597. 0,
  1598.  
  1599. 83,
  1600. 0,
  1601.  
  1602. 83,
  1603. 0,
  1604.  
  1605. 15,
  1606. 83,
  1607. 0,
  1608.  
  1609. 83,
  1610. 0,
  1611.  
  1612. 83,
  1613. 0,
  1614.  
  1615. 83,
  1616. 0,
  1617.  
  1618. 83,
  1619. 0,
  1620.  
  1621. 83,
  1622. 0,
  1623.  
  1624. 83,
  1625. 0,
  1626.  
  1627. 83,
  1628. 0,
  1629.  
  1630. 52,
  1631. 83,
  1632. 0,
  1633.  
  1634. 16,
  1635. 83,
  1636. 0,
  1637.  
  1638. 83,
  1639. 0,
  1640.  
  1641. 83,
  1642. 0,
  1643.  
  1644. 83,
  1645. 0,
  1646.  
  1647. 83,
  1648. 0,
  1649.  
  1650. 83,
  1651. 0,
  1652.  
  1653. 83,
  1654. 0,
  1655.  
  1656. 83,
  1657. 0,
  1658.  
  1659. 41,
  1660. 83,
  1661. 0,
  1662.  
  1663. 83,
  1664. 0,
  1665.  
  1666. 83,
  1667. 0,
  1668.  
  1669. 73,
  1670. 83,
  1671. 0,
  1672.  
  1673. 83,
  1674. 0,
  1675.  
  1676. 14,
  1677. 83,
  1678. 0,
  1679.  
  1680. 56,
  1681. 83,
  1682. 0,
  1683.  
  1684. 83,
  1685. 0,
  1686.  
  1687. 83,
  1688. 0,
  1689.  
  1690. 83,
  1691. 0,
  1692.  
  1693. 83,
  1694. 0,
  1695.  
  1696. 83,
  1697. 0,
  1698.  
  1699. 83,
  1700. 0,
  1701.  
  1702. 83,
  1703. 0,
  1704.  
  1705. 83,
  1706. 0,
  1707.  
  1708. 83,
  1709. 0,
  1710.  
  1711. 83,
  1712. 0,
  1713.  
  1714. 83,
  1715. 0,
  1716.  
  1717. 83,
  1718. 0,
  1719.  
  1720. 83,
  1721. 0,
  1722.  
  1723. 83,
  1724. 0,
  1725.  
  1726. 83,
  1727. 0,
  1728.  
  1729. 58,
  1730. 83,
  1731. 0,
  1732.  
  1733. 83,
  1734. 0,
  1735.  
  1736. 23,
  1737. 83,
  1738. 0,
  1739.  
  1740. 83,
  1741. 0,
  1742.  
  1743. 64,
  1744. 83,
  1745. 0,
  1746.  
  1747. 83,
  1748. 0,
  1749.  
  1750. 83,
  1751. 0,
  1752.  
  1753. 83,
  1754. 0,
  1755.  
  1756. 83,
  1757. 0,
  1758.  
  1759. 54,
  1760. 83,
  1761. 0,
  1762.  
  1763. 32,
  1764. 83,
  1765. 0,
  1766.  
  1767. 83,
  1768. 0,
  1769.  
  1770. 83,
  1771. 0,
  1772.  
  1773. 83,
  1774. 0,
  1775.  
  1776. 83,
  1777. 0,
  1778.  
  1779. 83,
  1780. 0,
  1781.  
  1782. 83,
  1783. 0,
  1784.  
  1785. 83,
  1786. 0,
  1787.  
  1788. 83,
  1789. 0,
  1790.  
  1791. 83,
  1792. 0,
  1793.  
  1794. 83,
  1795. 0,
  1796.  
  1797. 83,
  1798. 0,
  1799.  
  1800. 83,
  1801. 0,
  1802.  
  1803. 83,
  1804. 0,
  1805.  
  1806. 83,
  1807. 0,
  1808.  
  1809. 83,
  1810. 0,
  1811.  
  1812. 83,
  1813. 0,
  1814.  
  1815. 83,
  1816. 0,
  1817.  
  1818. 83,
  1819. 0,
  1820.  
  1821. 20,
  1822. 83,
  1823. 0,
  1824.  
  1825. 83,
  1826. 0,
  1827.  
  1828. 83,
  1829. 0,
  1830.  
  1831. 7,
  1832. 83,
  1833. 0,
  1834.  
  1835. 83,
  1836. 0,
  1837.  
  1838. 83,
  1839. 0,
  1840.  
  1841. 83,
  1842. 0,
  1843.  
  1844. 83,
  1845. 0,
  1846.  
  1847. 83,
  1848. 0,
  1849.  
  1850. 17,
  1851. 83,
  1852. 0,
  1853.  
  1854. 27,
  1855. 83,
  1856. 0,
  1857.  
  1858. 48,
  1859. 83,
  1860. 0,
  1861.  
  1862. 83,
  1863. 0,
  1864.  
  1865. 40,
  1866. 83,
  1867. 0,
  1868.  
  1869. 39,
  1870. 83,
  1871. 0,
  1872.  
  1873. 83,
  1874. 0,
  1875.  
  1876. 83,
  1877. 0,
  1878.  
  1879. 83,
  1880. 0,
  1881.  
  1882. 83,
  1883. 0,
  1884.  
  1885. 83,
  1886. 0,
  1887.  
  1888. 83,
  1889. 0,
  1890.  
  1891. 83,
  1892. 0,
  1893.  
  1894. 83,
  1895. 0,
  1896.  
  1897. 72,
  1898. 83,
  1899. 0,
  1900.  
  1901. 83,
  1902. 0,
  1903.  
  1904. 83,
  1905. 0,
  1906.  
  1907. 83,
  1908. 0,
  1909.  
  1910. 83,
  1911. 0,
  1912.  
  1913. 83,
  1914. 0,
  1915.  
  1916. 83,
  1917. 0,
  1918.  
  1919. 65,
  1920. 83,
  1921. 0,
  1922.  
  1923. 83,
  1924. 0,
  1925.  
  1926. 83,
  1927. 0,
  1928.  
  1929. 83,
  1930. 0,
  1931.  
  1932. 83,
  1933. 0,
  1934.  
  1935. 83,
  1936. 0,
  1937.  
  1938. 37,
  1939. 83,
  1940. 0,
  1941.  
  1942. 29,
  1943. 83,
  1944. 0,
  1945.  
  1946. 75,
  1947. 83,
  1948. 0,
  1949.  
  1950. 83,
  1951. 0,
  1952.  
  1953. 61,
  1954. 83,
  1955. 0,
  1956.  
  1957. 83,
  1958. 0,
  1959.  
  1960. 83,
  1961. 0,
  1962.  
  1963. 83,
  1964. 0,
  1965.  
  1966. 83,
  1967. 0,
  1968.  
  1969. 83,
  1970. 0,
  1971.  
  1972. 83,
  1973. 0,
  1974.  
  1975. 18,
  1976. 83,
  1977. 0,
  1978.  
  1979. 83,
  1980. 0,
  1981.  
  1982. 83,
  1983. 0,
  1984.  
  1985. 83,
  1986. 0,
  1987.  
  1988. 3,
  1989. 83,
  1990. 0,
  1991.  
  1992. 83,
  1993. 0,
  1994.  
  1995. 83,
  1996. 0,
  1997.  
  1998. 83,
  1999. 0,
  2000.  
  2001. 5,
  2002. 83,
  2003. 0,
  2004.  
  2005. 83,
  2006. 0,
  2007.  
  2008. 83,
  2009. 0,
  2010.  
  2011. 13,
  2012. 83,
  2013. 0,
  2014.  
  2015. 83,
  2016. 0,
  2017.  
  2018. 83,
  2019. 0,
  2020.  
  2021. 8,
  2022. 83,
  2023. 0,
  2024.  
  2025. 83,
  2026. 0,
  2027.  
  2028. 83,
  2029. 0,
  2030.  
  2031. 70,
  2032. 83,
  2033. 0,
  2034.  
  2035. 50,
  2036. 83,
  2037. 0,
  2038.  
  2039. 76,
  2040. 83,
  2041. 0,
  2042.  
  2043. 83,
  2044. 0,
  2045.  
  2046. 83,
  2047. 0,
  2048.  
  2049. 1,
  2050. 83,
  2051. 0,
  2052.  
  2053. 83,
  2054. 0,
  2055.  
  2056. 83,
  2057. 0,
  2058.  
  2059. 36,
  2060. 83,
  2061. 0,
  2062.  
  2063. 11,
  2064. 83,
  2065. 0,
  2066.  
  2067. 83,
  2068. 0,
  2069.  
  2070. 83,
  2071. 0,
  2072.  
  2073. 83,
  2074. 0,
  2075.  
  2076. 19,
  2077. 83,
  2078. 0,
  2079.  
  2080. 83,
  2081. 0,
  2082.  
  2083. 24,
  2084. 83,
  2085. 0,
  2086.  
  2087. 4,
  2088. 83,
  2089. 0,
  2090.  
  2091. 2,
  2092. 83,
  2093. 0,
  2094.  
  2095. 28,
  2096. 83,
  2097. 0,
  2098.  
  2099. 71,
  2100. 83,
  2101. 0,
  2102.  
  2103. 62,
  2104. 83,
  2105. 0,
  2106.  
  2107. 12,
  2108. 83,
  2109. 0,
  2110.  
  2111. 38,
  2112. 83,
  2113. 0,
  2114.  
  2115. 83,
  2116. 0,
  2117.  
  2118. 83,
  2119. 0,
  2120.  
  2121. 78,
  2122. 83,
  2123. 0,
  2124.  
  2125. 83,
  2126. 0,
  2127.  
  2128. 83,
  2129. 0,
  2130.  
  2131. 51,
  2132. 83,
  2133. 0,
  2134. 0};
  2135. # define YYTYPE int
  2136. struct yywork { YYTYPE verify, advance; } yycrank[] = {
  2137. 0,0,    0,0,    0,0,    0,0,    
  2138. 0,0,    0,0,    0,0,    0,0,    
  2139. 0,0,    0,0,    1,3,    1,4,    
  2140. 0,0,    0,0,    0,0,    0,0,    
  2141. 0,0,    0,0,    0,0,    0,0,    
  2142. 0,0,    0,0,    0,0,    0,0,    
  2143. 0,0,    0,0,    0,0,    0,0,    
  2144. 0,0,    0,0,    0,0,    0,0,    
  2145. 0,0,    1,3,    0,0,    1,5,    
  2146. 1,6,    1,7,    1,8,    7,44,    
  2147. 1,9,    1,10,    1,11,    1,12,    
  2148. 1,13,    1,14,    1,15,    1,16,    
  2149. 1,17,    1,18,    1,18,    1,18,    
  2150. 1,18,    1,18,    1,18,    1,18,    
  2151. 1,18,    1,18,    1,18,    17,45,    
  2152. 0,0,    0,0,    1,19,    0,0,    
  2153. 0,0,    0,0,    1,20,    1,20,    
  2154. 1,20,    1,20,    1,20,    1,20,    
  2155. 1,20,    1,20,    1,20,    1,20,    
  2156. 1,20,    1,20,    1,20,    1,20,    
  2157. 1,20,    1,20,    1,20,    1,20,    
  2158. 1,20,    1,20,    1,20,    1,20,    
  2159. 1,20,    1,20,    1,20,    1,20,    
  2160. 0,0,    0,0,    0,0,    1,21,    
  2161. 1,20,    0,0,    1,22,    1,23,    
  2162. 1,24,    1,25,    1,26,    1,27,    
  2163. 1,28,    1,29,    1,30,    1,20,    
  2164. 1,20,    1,31,    1,32,    1,33,    
  2165. 1,34,    1,35,    1,20,    1,36,    
  2166. 1,37,    1,38,    1,39,    1,40,    
  2167. 1,41,    1,20,    1,20,    1,20,    
  2168. 1,42,    26,57,    1,43,    16,16,    
  2169. 16,16,    16,16,    16,16,    16,16,    
  2170. 16,16,    16,16,    16,16,    16,16,    
  2171. 16,16,    18,16,    28,61,    18,18,    
  2172. 18,18,    18,18,    18,18,    18,18,    
  2173. 18,18,    18,18,    18,18,    18,18,    
  2174. 18,18,    20,20,    20,20,    20,20,    
  2175. 20,20,    20,20,    20,20,    20,20,    
  2176. 20,20,    20,20,    20,20,    20,20,    
  2177. 20,20,    29,62,    30,63,    32,66,    
  2178. 39,95,    41,99,    46,100,    48,103,    
  2179. 20,20,    20,20,    20,20,    20,20,    
  2180. 20,20,    20,20,    20,20,    20,20,    
  2181. 20,20,    20,20,    20,20,    20,20,    
  2182. 20,20,    20,20,    20,20,    20,20,    
  2183. 20,20,    20,20,    20,20,    20,20,    
  2184. 20,20,    20,20,    20,20,    20,20,    
  2185. 20,20,    20,20,    50,106,    51,107,    
  2186. 52,108,    54,113,    20,20,    55,114,    
  2187. 20,20,    20,20,    20,20,    20,20,    
  2188. 20,20,    20,20,    20,20,    20,20,    
  2189. 20,20,    20,20,    20,20,    20,20,    
  2190. 20,20,    20,20,    20,20,    20,20,    
  2191. 20,20,    20,20,    20,20,    20,20,    
  2192. 20,20,    20,20,    20,20,    20,20,    
  2193. 20,20,    20,20,    22,46,    25,55,    
  2194. 23,49,    56,115,    24,52,    57,116,    
  2195. 23,50,    27,58,    49,104,    25,56,    
  2196. 31,64,    22,47,    22,48,    23,51,    
  2197. 24,53,    27,59,    31,65,    33,67,    
  2198. 24,54,    34,69,    40,96,    27,60,    
  2199. 35,73,    33,68,    49,105,    35,74,    
  2200. 35,75,    34,70,    47,101,    40,97,    
  2201. 40,98,    34,71,    36,77,    58,117,    
  2202. 34,72,    35,76,    36,78,    36,79,    
  2203. 36,80,    37,84,    36,81,    59,118,    
  2204. 47,102,    36,82,    37,85,    37,86,    
  2205. 36,83,    53,109,    38,89,    60,119,    
  2206. 61,120,    37,87,    38,90,    37,88,    
  2207. 53,110,    53,111,    53,112,    62,121,    
  2208. 38,91,    63,122,    64,123,    38,92,    
  2209. 65,124,    66,126,    38,93,    67,129,    
  2210. 38,94,    66,127,    68,130,    69,131,    
  2211. 71,132,    66,128,    72,134,    73,135,    
  2212. 65,125,    74,136,    75,138,    76,139,    
  2213. 77,140,    79,145,    78,143,    80,146,    
  2214. 82,147,    83,148,    84,149,    85,151,    
  2215. 71,133,    86,152,    77,141,    74,137,    
  2216. 78,144,    87,153,    88,154,    89,155,    
  2217. 90,156,    91,158,    92,159,    93,160,    
  2218. 94,161,    77,142,    96,162,    84,150,    
  2219. 90,157,    97,163,    98,164,    99,165,    
  2220. 100,166,    101,167,    102,168,    103,169,    
  2221. 104,170,    105,171,    106,172,    107,173,    
  2222. 108,174,    109,175,    110,176,    111,177,    
  2223. 112,178,    114,179,    115,180,    116,181,    
  2224. 117,182,    118,183,    119,184,    120,185,    
  2225. 121,186,    122,187,    123,188,    124,189,    
  2226. 125,190,    127,191,    128,192,    129,194,    
  2227. 130,195,    131,196,    132,197,    133,198,    
  2228. 134,199,    135,200,    136,201,    137,202,    
  2229. 138,203,    139,204,    128,193,    140,205,    
  2230. 141,206,    142,207,    143,208,    144,209,    
  2231. 145,210,    146,211,    147,212,    148,213,    
  2232. 149,214,    150,215,    151,216,    152,217,    
  2233. 153,218,    154,219,    155,220,    156,221,    
  2234. 157,222,    159,223,    160,224,    161,225,    
  2235. 162,226,    163,227,    164,228,    165,229,    
  2236. 166,230,    167,231,    168,232,    169,233,    
  2237. 170,234,    170,235,    172,236,    173,237,    
  2238. 174,238,    175,239,    176,240,    177,242,    
  2239. 178,243,    176,241,    179,244,    180,245,    
  2240. 181,246,    182,247,    183,248,    184,249,    
  2241. 185,250,    186,251,    187,252,    188,253,    
  2242. 189,254,    190,255,    191,256,    192,257,    
  2243. 193,258,    194,259,    195,260,    196,261,    
  2244. 197,262,    198,263,    199,264,    200,265,    
  2245. 201,266,    202,267,    203,268,    204,269,    
  2246. 205,270,    206,272,    207,273,    208,274,    
  2247. 209,275,    210,276,    213,277,    214,278,    
  2248. 215,279,    216,280,    218,281,    219,282,    
  2249. 205,271,    220,283,    222,284,    223,285,    
  2250. 224,286,    225,287,    226,288,    227,289,    
  2251. 228,290,    229,291,    230,292,    231,293,    
  2252. 232,294,    234,295,    235,296,    236,297,    
  2253. 237,298,    238,299,    239,300,    240,301,    
  2254. 241,240,    242,303,    243,304,    244,305,    
  2255. 245,306,    246,307,    240,302,    247,308,    
  2256. 248,309,    249,310,    250,311,    251,312,    
  2257. 252,313,    254,314,    255,315,    256,316,    
  2258. 257,317,    258,318,    259,319,    260,320,    
  2259. 261,321,    263,322,    264,323,    265,324,    
  2260. 267,325,    268,326,    269,327,    271,328,    
  2261. 273,329,    274,330,    275,331,    276,332,    
  2262. 277,333,    278,334,    279,335,    280,336,    
  2263. 281,337,    282,338,    283,339,    285,340,    
  2264. 286,342,    287,343,    288,344,    285,341,    
  2265. 289,345,    290,346,    291,347,    292,348,    
  2266. 293,349,    294,350,    295,351,    296,352,    
  2267. 297,353,    298,354,    300,355,    301,356,    
  2268. 302,357,    303,358,    304,359,    305,360,    
  2269. 306,361,    307,362,    308,363,    309,364,    
  2270. 310,365,    311,366,    312,367,    313,368,    
  2271. 314,369,    316,370,    317,371,    318,372,    
  2272. 319,373,    320,374,    321,375,    322,376,    
  2273. 324,377,    325,378,    326,379,    327,380,    
  2274. 329,381,    330,382,    332,383,    334,384,    
  2275. 335,385,    336,386,    337,387,    338,388,    
  2276. 339,389,    340,390,    341,391,    342,392,    
  2277. 343,393,    345,394,    346,395,    347,396,    
  2278. 348,397,    350,398,    351,399,    352,400,    
  2279. 353,401,    354,402,    355,403,    356,404,    
  2280. 357,405,    358,406,    359,407,    361,408,    
  2281. 362,409,    364,410,    365,411,    367,412,    
  2282. 368,413,    369,414,    370,415,    371,416,    
  2283. 372,417,    373,418,    376,419,    377,420,    
  2284. 378,421,    379,422,    380,423,    381,424,    
  2285. 382,425,    384,426,    385,427,    387,428,    
  2286. 390,429,    391,430,    392,431,    393,432,    
  2287. 394,433,    395,434,    396,435,    397,436,    
  2288. 398,437,    399,438,    400,439,    401,440,    
  2289. 402,441,    403,442,    404,443,    406,444,    
  2290. 408,445,    410,446,    411,447,    412,448,    
  2291. 413,450,    416,451,    412,449,    417,452,    
  2292. 418,453,    419,454,    420,455,    421,456,    
  2293. 422,457,    423,458,    424,459,    425,460,    
  2294. 426,461,    427,462,    428,463,    429,464,    
  2295. 430,465,    431,466,    432,467,    433,468,    
  2296. 435,469,    436,470,    438,471,    439,472,    
  2297. 440,473,    441,474,    442,476,    446,477,    
  2298. 441,475,    449,448,    450,478,    451,479,    
  2299. 452,480,    453,481,    454,482,    455,483,    
  2300. 456,484,    458,485,    459,486,    460,487,    
  2301. 461,488,    462,489,    463,490,    465,491,    
  2302. 466,492,    467,493,    468,494,    469,495,    
  2303. 473,496,    475,474,    476,497,    477,498,    
  2304. 478,499,    479,500,    480,501,    482,502,    
  2305. 483,503,    484,504,    486,505,    487,506,    
  2306. 488,507,    490,508,    491,509,    493,510,    
  2307. 494,511,    496,512,    497,513,    501,514,    
  2308. 502,515,    504,516,    505,517,    507,518,    
  2309. 508,519,    509,520,    510,521,    512,522,    
  2310. 521,523,    522,524,    524,525,    525,526,    
  2311. 0,0};
  2312. struct yysvf yysvec[] = {
  2313. 0,    0,    0,
  2314. yycrank+1,    0,        yyvstop+1,
  2315. yycrank+0,    yysvec+1,    yyvstop+3,
  2316. yycrank+0,    0,        yyvstop+5,
  2317. yycrank+0,    0,        yyvstop+7,
  2318. yycrank+0,    0,        yyvstop+9,
  2319. yycrank+0,    0,        yyvstop+11,
  2320. yycrank+3,    0,        0,    
  2321. yycrank+0,    0,        yyvstop+13,
  2322. yycrank+0,    0,        yyvstop+15,
  2323. yycrank+0,    0,        yyvstop+17,
  2324. yycrank+0,    0,        yyvstop+19,
  2325. yycrank+0,    0,        yyvstop+21,
  2326. yycrank+0,    0,        yyvstop+23,
  2327. yycrank+0,    0,        yyvstop+25,
  2328. yycrank+0,    0,        yyvstop+27,
  2329. yycrank+79,    0,        yyvstop+29,
  2330. yycrank+17,    0,        yyvstop+31,
  2331. yycrank+91,    0,        yyvstop+33,
  2332. yycrank+0,    0,        yyvstop+35,
  2333. yycrank+103,    0,        yyvstop+37,
  2334. yycrank+0,    0,        yyvstop+39,
  2335. yycrank+128,    yysvec+20,    yyvstop+41,
  2336. yycrank+131,    yysvec+20,    yyvstop+43,
  2337. yycrank+129,    yysvec+20,    yyvstop+45,
  2338. yycrank+130,    yysvec+20,    yyvstop+47,
  2339. yycrank+12,    yysvec+20,    yyvstop+49,
  2340. yycrank+136,    yysvec+20,    yyvstop+51,
  2341. yycrank+37,    yysvec+20,    yyvstop+53,
  2342. yycrank+64,    yysvec+20,    yyvstop+55,
  2343. yycrank+52,    yysvec+20,    yyvstop+57,
  2344. yycrank+131,    yysvec+20,    yyvstop+59,
  2345. yycrank+66,    yysvec+20,    yyvstop+61,
  2346. yycrank+132,    yysvec+20,    yyvstop+63,
  2347. yycrank+143,    yysvec+20,    yyvstop+65,
  2348. yycrank+147,    yysvec+20,    yyvstop+67,
  2349. yycrank+161,    yysvec+20,    yyvstop+69,
  2350. yycrank+166,    yysvec+20,    yyvstop+71,
  2351. yycrank+173,    yysvec+20,    yyvstop+73,
  2352. yycrank+52,    yysvec+20,    yyvstop+75,
  2353. yycrank+145,    yysvec+20,    yyvstop+77,
  2354. yycrank+68,    yysvec+20,    yyvstop+79,
  2355. yycrank+0,    0,        yyvstop+81,
  2356. yycrank+0,    0,        yyvstop+83,
  2357. yycrank+0,    0,        yyvstop+85,
  2358. yycrank+0,    0,        yyvstop+87,
  2359. yycrank+51,    yysvec+20,    yyvstop+89,
  2360. yycrank+156,    yysvec+20,    yyvstop+91,
  2361. yycrank+64,    yysvec+20,    yyvstop+93,
  2362. yycrank+135,    yysvec+20,    yyvstop+95,
  2363. yycrank+97,    yysvec+20,    yyvstop+97,
  2364. yycrank+94,    yysvec+20,    yyvstop+99,
  2365. yycrank+86,    yysvec+20,    yyvstop+101,
  2366. yycrank+172,    yysvec+20,    yyvstop+103,
  2367. yycrank+94,    yysvec+20,    yyvstop+105,
  2368. yycrank+90,    yysvec+20,    yyvstop+107,
  2369. yycrank+115,    yysvec+20,    yyvstop+109,
  2370. yycrank+114,    yysvec+20,    yyvstop+111,
  2371. yycrank+151,    yysvec+20,    yyvstop+113,
  2372. yycrank+166,    yysvec+20,    yyvstop+115,
  2373. yycrank+172,    yysvec+20,    yyvstop+117,
  2374. yycrank+165,    yysvec+20,    yyvstop+119,
  2375. yycrank+161,    yysvec+20,    yyvstop+121,
  2376. yycrank+170,    yysvec+20,    yyvstop+123,
  2377. yycrank+183,    yysvec+20,    yyvstop+125,
  2378. yycrank+189,    yysvec+20,    yyvstop+127,
  2379. yycrank+177,    yysvec+20,    yyvstop+129,
  2380. yycrank+177,    yysvec+20,    yyvstop+131,
  2381. yycrank+185,    yysvec+20,    yyvstop+133,
  2382. yycrank+193,    yysvec+20,    yyvstop+135,
  2383. yycrank+0,    yysvec+20,    yyvstop+137,
  2384. yycrank+196,    yysvec+20,    yyvstop+140,
  2385. yycrank+182,    yysvec+20,    yyvstop+142,
  2386. yycrank+185,    yysvec+20,    yyvstop+144,
  2387. yycrank+204,    yysvec+20,    yyvstop+146,
  2388. yycrank+182,    yysvec+20,    yyvstop+148,
  2389. yycrank+192,    yysvec+20,    yyvstop+150,
  2390. yycrank+204,    yysvec+20,    yyvstop+152,
  2391. yycrank+204,    yysvec+20,    yyvstop+154,
  2392. yycrank+208,    yysvec+20,    yyvstop+156,
  2393. yycrank+209,    yysvec+20,    yyvstop+158,
  2394. yycrank+0,    yysvec+20,    yyvstop+160,
  2395. yycrank+207,    yysvec+20,    yyvstop+163,
  2396. yycrank+193,    yysvec+20,    yyvstop+165,
  2397. yycrank+213,    yysvec+20,    yyvstop+167,
  2398. yycrank+214,    yysvec+20,    yyvstop+169,
  2399. yycrank+191,    yysvec+20,    yyvstop+171,
  2400. yycrank+200,    yysvec+20,    yyvstop+173,
  2401. yycrank+201,    yysvec+20,    yyvstop+175,
  2402. yycrank+199,    yysvec+20,    yyvstop+177,
  2403. yycrank+212,    yysvec+20,    yyvstop+179,
  2404. yycrank+209,    yysvec+20,    yyvstop+181,
  2405. yycrank+225,    yysvec+20,    yyvstop+183,
  2406. yycrank+209,    yysvec+20,    yyvstop+185,
  2407. yycrank+223,    yysvec+20,    yyvstop+187,
  2408. yycrank+0,    yysvec+20,    yyvstop+189,
  2409. yycrank+212,    yysvec+20,    yyvstop+192,
  2410. yycrank+218,    yysvec+20,    yyvstop+194,
  2411. yycrank+216,    yysvec+20,    yyvstop+196,
  2412. yycrank+213,    yysvec+20,    yyvstop+198,
  2413. yycrank+221,    yysvec+20,    yyvstop+200,
  2414. yycrank+228,    yysvec+20,    yyvstop+202,
  2415. yycrank+226,    yysvec+20,    yyvstop+204,
  2416. yycrank+227,    yysvec+20,    yyvstop+206,
  2417. yycrank+229,    yysvec+20,    yyvstop+208,
  2418. yycrank+236,    yysvec+20,    yyvstop+210,
  2419. yycrank+229,    yysvec+20,    yyvstop+212,
  2420. yycrank+229,    yysvec+20,    yyvstop+214,
  2421. yycrank+224,    yysvec+20,    yyvstop+216,
  2422. yycrank+239,    yysvec+20,    yyvstop+218,
  2423. yycrank+231,    yysvec+20,    yyvstop+220,
  2424. yycrank+231,    yysvec+20,    yyvstop+222,
  2425. yycrank+229,    yysvec+20,    yyvstop+224,
  2426. yycrank+0,    yysvec+20,    yyvstop+226,
  2427. yycrank+233,    yysvec+20,    yyvstop+229,
  2428. yycrank+245,    yysvec+20,    yyvstop+231,
  2429. yycrank+250,    yysvec+20,    yyvstop+233,
  2430. yycrank+240,    yysvec+20,    yyvstop+235,
  2431. yycrank+241,    yysvec+20,    yyvstop+237,
  2432. yycrank+248,    yysvec+20,    yyvstop+239,
  2433. yycrank+249,    yysvec+20,    yyvstop+241,
  2434. yycrank+251,    yysvec+20,    yyvstop+243,
  2435. yycrank+248,    yysvec+20,    yyvstop+245,
  2436. yycrank+250,    yysvec+20,    yyvstop+247,
  2437. yycrank+258,    yysvec+20,    yyvstop+249,
  2438. yycrank+249,    yysvec+20,    yyvstop+251,
  2439. yycrank+0,    yysvec+20,    yyvstop+253,
  2440. yycrank+256,    yysvec+20,    yyvstop+256,
  2441. yycrank+254,    yysvec+20,    yyvstop+258,
  2442. yycrank+250,    yysvec+20,    yyvstop+260,
  2443. yycrank+246,    yysvec+20,    yyvstop+262,
  2444. yycrank+259,    yysvec+20,    yyvstop+264,
  2445. yycrank+261,    yysvec+20,    yyvstop+267,
  2446. yycrank+259,    yysvec+20,    yyvstop+269,
  2447. yycrank+252,    yysvec+20,    yyvstop+271,
  2448. yycrank+250,    yysvec+20,    yyvstop+273,
  2449. yycrank+251,    yysvec+20,    yyvstop+275,
  2450. yycrank+257,    yysvec+20,    yyvstop+277,
  2451. yycrank+267,    yysvec+20,    yyvstop+279,
  2452. yycrank+263,    yysvec+20,    yyvstop+281,
  2453. yycrank+266,    yysvec+20,    yyvstop+283,
  2454. yycrank+269,    yysvec+20,    yyvstop+285,
  2455. yycrank+258,    yysvec+20,    yyvstop+287,
  2456. yycrank+266,    yysvec+20,    yyvstop+289,
  2457. yycrank+274,    yysvec+20,    yyvstop+291,
  2458. yycrank+277,    yysvec+20,    yyvstop+293,
  2459. yycrank+280,    yysvec+20,    yyvstop+295,
  2460. yycrank+281,    yysvec+20,    yyvstop+298,
  2461. yycrank+282,    yysvec+20,    yyvstop+301,
  2462. yycrank+272,    yysvec+20,    yyvstop+303,
  2463. yycrank+280,    yysvec+20,    yyvstop+305,
  2464. yycrank+282,    yysvec+20,    yyvstop+307,
  2465. yycrank+282,    yysvec+20,    yyvstop+309,
  2466. yycrank+270,    yysvec+20,    yyvstop+311,
  2467. yycrank+284,    yysvec+20,    yyvstop+313,
  2468. yycrank+270,    yysvec+20,    yyvstop+315,
  2469. yycrank+286,    yysvec+20,    yyvstop+317,
  2470. yycrank+280,    yysvec+20,    yyvstop+319,
  2471. yycrank+0,    yysvec+20,    yyvstop+321,
  2472. yycrank+279,    yysvec+20,    yyvstop+324,
  2473. yycrank+292,    yysvec+20,    yyvstop+326,
  2474. yycrank+281,    yysvec+20,    yyvstop+328,
  2475. yycrank+276,    yysvec+20,    yyvstop+330,
  2476. yycrank+279,    yysvec+20,    yyvstop+332,
  2477. yycrank+278,    yysvec+20,    yyvstop+334,
  2478. yycrank+294,    yysvec+20,    yyvstop+336,
  2479. yycrank+282,    yysvec+20,    yyvstop+338,
  2480. yycrank+296,    yysvec+20,    yyvstop+340,
  2481. yycrank+293,    yysvec+20,    yyvstop+342,
  2482. yycrank+298,    yysvec+20,    yyvstop+344,
  2483. yycrank+298,    yysvec+20,    yyvstop+346,
  2484. yycrank+0,    yysvec+20,    yyvstop+348,
  2485. yycrank+302,    yysvec+20,    yyvstop+351,
  2486. yycrank+303,    yysvec+20,    yyvstop+353,
  2487. yycrank+303,    yysvec+20,    yyvstop+355,
  2488. yycrank+303,    yysvec+20,    yyvstop+357,
  2489. yycrank+292,    yysvec+20,    yyvstop+359,
  2490. yycrank+296,    yysvec+20,    yyvstop+361,
  2491. yycrank+292,    yysvec+20,    yyvstop+363,
  2492. yycrank+305,    yysvec+20,    yyvstop+365,
  2493. yycrank+312,    yysvec+20,    yyvstop+367,
  2494. yycrank+296,    yysvec+20,    yyvstop+369,
  2495. yycrank+302,    yysvec+20,    yyvstop+371,
  2496. yycrank+314,    yysvec+20,    yyvstop+373,
  2497. yycrank+318,    yysvec+20,    yyvstop+375,
  2498. yycrank+311,    yysvec+20,    yyvstop+377,
  2499. yycrank+318,    yysvec+20,    yyvstop+379,
  2500. yycrank+318,    yysvec+20,    yyvstop+381,
  2501. yycrank+303,    yysvec+20,    yyvstop+383,
  2502. yycrank+304,    yysvec+20,    yyvstop+385,
  2503. yycrank+324,    yysvec+20,    yyvstop+387,
  2504. yycrank+308,    yysvec+20,    yyvstop+389,
  2505. yycrank+318,    yysvec+20,    yyvstop+391,
  2506. yycrank+310,    yysvec+20,    yyvstop+393,
  2507. yycrank+328,    yysvec+20,    yyvstop+395,
  2508. yycrank+329,    yysvec+20,    yyvstop+397,
  2509. yycrank+322,    yysvec+20,    yyvstop+399,
  2510. yycrank+314,    yysvec+20,    yyvstop+401,
  2511. yycrank+318,    yysvec+20,    yyvstop+403,
  2512. yycrank+313,    yysvec+20,    yyvstop+405,
  2513. yycrank+319,    yysvec+20,    yyvstop+407,
  2514. yycrank+331,    yysvec+20,    yyvstop+409,
  2515. yycrank+330,    yysvec+20,    yyvstop+411,
  2516. yycrank+326,    yysvec+20,    yyvstop+413,
  2517. yycrank+334,    yysvec+20,    yyvstop+415,
  2518. yycrank+331,    yysvec+20,    yyvstop+417,
  2519. yycrank+336,    yysvec+20,    yyvstop+419,
  2520. yycrank+326,    yysvec+20,    yyvstop+421,
  2521. yycrank+338,    yysvec+20,    yyvstop+423,
  2522. yycrank+343,    yysvec+20,    yyvstop+425,
  2523. yycrank+325,    yysvec+20,    yyvstop+427,
  2524. yycrank+0,    yysvec+20,    yyvstop+429,
  2525. yycrank+0,    yysvec+20,    yyvstop+432,
  2526. yycrank+326,    yysvec+20,    yyvstop+435,
  2527. yycrank+342,    yysvec+20,    yyvstop+437,
  2528. yycrank+343,    yysvec+20,    yyvstop+439,
  2529. yycrank+334,    yysvec+20,    yyvstop+441,
  2530. yycrank+0,    yysvec+20,    yyvstop+443,
  2531. yycrank+347,    yysvec+20,    yyvstop+446,
  2532. yycrank+346,    yysvec+20,    yyvstop+448,
  2533. yycrank+332,    yysvec+20,    yyvstop+450,
  2534. yycrank+0,    yysvec+20,    yyvstop+452,
  2535. yycrank+349,    yysvec+20,    yyvstop+455,
  2536. yycrank+336,    yysvec+20,    yyvstop+457,
  2537. yycrank+335,    yysvec+20,    yyvstop+459,
  2538. yycrank+337,    yysvec+20,    yyvstop+461,
  2539. yycrank+353,    yysvec+20,    yyvstop+463,
  2540. yycrank+346,    yysvec+20,    yyvstop+465,
  2541. yycrank+354,    yysvec+20,    yyvstop+467,
  2542. yycrank+349,    yysvec+20,    yyvstop+469,
  2543. yycrank+346,    yysvec+20,    yyvstop+471,
  2544. yycrank+349,    yysvec+20,    yyvstop+473,
  2545. yycrank+344,    yysvec+20,    yyvstop+475,
  2546. yycrank+0,    yysvec+20,    yyvstop+477,
  2547. yycrank+364,    yysvec+20,    yyvstop+480,
  2548. yycrank+348,    yysvec+20,    yyvstop+482,
  2549. yycrank+358,    yysvec+20,    yyvstop+484,
  2550. yycrank+365,    yysvec+20,    yyvstop+486,
  2551. yycrank+351,    yysvec+20,    yyvstop+489,
  2552. yycrank+361,    yysvec+20,    yyvstop+491,
  2553. yycrank+365,    yysvec+20,    yyvstop+493,
  2554. yycrank+354,    yysvec+20,    yyvstop+496,
  2555. yycrank+354,    yysvec+20,    yyvstop+498,
  2556. yycrank+373,    yysvec+20,    yyvstop+500,
  2557. yycrank+361,    yysvec+20,    yyvstop+502,
  2558. yycrank+356,    yysvec+20,    yyvstop+504,
  2559. yycrank+368,    yysvec+20,    yyvstop+506,
  2560. yycrank+373,    yysvec+20,    yyvstop+508,
  2561. yycrank+365,    yysvec+20,    yyvstop+510,
  2562. yycrank+378,    yysvec+20,    yyvstop+512,
  2563. yycrank+370,    yysvec+20,    yyvstop+514,
  2564. yycrank+368,    yysvec+20,    yyvstop+516,
  2565. yycrank+379,    yysvec+20,    yyvstop+518,
  2566. yycrank+0,    yysvec+20,    yyvstop+520,
  2567. yycrank+376,    yysvec+20,    yyvstop+523,
  2568. yycrank+366,    yysvec+20,    yyvstop+525,
  2569. yycrank+378,    yysvec+20,    yyvstop+527,
  2570. yycrank+368,    yysvec+20,    yyvstop+529,
  2571. yycrank+384,    yysvec+20,    yyvstop+531,
  2572. yycrank+378,    yysvec+20,    yyvstop+533,
  2573. yycrank+366,    yysvec+20,    yyvstop+535,
  2574. yycrank+380,    yysvec+20,    yyvstop+537,
  2575. yycrank+0,    yysvec+20,    yyvstop+539,
  2576. yycrank+386,    yysvec+20,    yyvstop+542,
  2577. yycrank+374,    yysvec+20,    yyvstop+544,
  2578. yycrank+390,    yysvec+20,    yyvstop+546,
  2579. yycrank+0,    yysvec+20,    yyvstop+548,
  2580. yycrank+377,    yysvec+20,    yyvstop+551,
  2581. yycrank+390,    yysvec+20,    yyvstop+553,
  2582. yycrank+395,    yysvec+20,    yyvstop+555,
  2583. yycrank+0,    yysvec+20,    yyvstop+557,
  2584. yycrank+380,    yysvec+20,    yyvstop+560,
  2585. yycrank+0,    yysvec+20,    yyvstop+562,
  2586. yycrank+395,    yysvec+20,    yyvstop+565,
  2587. yycrank+398,    yysvec+20,    yyvstop+567,
  2588. yycrank+382,    yysvec+20,    yyvstop+569,
  2589. yycrank+388,    yysvec+20,    yyvstop+571,
  2590. yycrank+399,    yysvec+20,    yyvstop+573,
  2591. yycrank+399,    yysvec+20,    yyvstop+575,
  2592. yycrank+392,    yysvec+20,    yyvstop+578,
  2593. yycrank+384,    yysvec+20,    yyvstop+580,
  2594. yycrank+403,    yysvec+20,    yyvstop+582,
  2595. yycrank+383,    yysvec+20,    yyvstop+584,
  2596. yycrank+392,    yysvec+20,    yyvstop+586,
  2597. yycrank+0,    yysvec+20,    yyvstop+588,
  2598. yycrank+399,    yysvec+20,    yyvstop+591,
  2599. yycrank+400,    yysvec+20,    yyvstop+593,
  2600. yycrank+388,    yysvec+20,    yyvstop+595,
  2601. yycrank+390,    yysvec+20,    yyvstop+597,
  2602. yycrank+415,    yysvec+20,    yyvstop+599,
  2603. yycrank+408,    yysvec+20,    yyvstop+601,
  2604. yycrank+413,    yysvec+20,    yyvstop+603,
  2605. yycrank+399,    yysvec+20,    yyvstop+605,
  2606. yycrank+400,    yysvec+20,    yyvstop+607,
  2607. yycrank+400,    yysvec+20,    yyvstop+609,
  2608. yycrank+419,    yysvec+20,    yyvstop+611,
  2609. yycrank+408,    yysvec+20,    yyvstop+613,
  2610. yycrank+405,    yysvec+20,    yyvstop+615,
  2611. yycrank+410,    yysvec+20,    yyvstop+617,
  2612. yycrank+0,    yysvec+20,    yyvstop+619,
  2613. yycrank+423,    yysvec+20,    yyvstop+622,
  2614. yycrank+418,    yysvec+20,    yyvstop+624,
  2615. yycrank+427,    yysvec+20,    yyvstop+626,
  2616. yycrank+420,    yysvec+20,    yyvstop+628,
  2617. yycrank+416,    yysvec+20,    yyvstop+630,
  2618. yycrank+424,    yysvec+20,    yyvstop+632,
  2619. yycrank+423,    yysvec+20,    yyvstop+634,
  2620. yycrank+418,    yysvec+20,    yyvstop+636,
  2621. yycrank+428,    yysvec+20,    yyvstop+638,
  2622. yycrank+429,    yysvec+20,    yyvstop+640,
  2623. yycrank+416,    yysvec+20,    yyvstop+642,
  2624. yycrank+432,    yysvec+20,    yyvstop+644,
  2625. yycrank+426,    yysvec+20,    yyvstop+646,
  2626. yycrank+438,    yysvec+20,    yyvstop+648,
  2627. yycrank+425,    yysvec+20,    yyvstop+650,
  2628. yycrank+0,    yysvec+20,    yyvstop+652,
  2629. yycrank+440,    yysvec+20,    yyvstop+655,
  2630. yycrank+430,    yysvec+20,    yyvstop+657,
  2631. yycrank+438,    yysvec+20,    yyvstop+659,
  2632. yycrank+438,    yysvec+20,    yyvstop+661,
  2633. yycrank+426,    yysvec+20,    yyvstop+663,
  2634. yycrank+441,    yysvec+20,    yyvstop+665,
  2635. yycrank+429,    yysvec+20,    yyvstop+667,
  2636. yycrank+0,    yysvec+20,    yyvstop+669,
  2637. yycrank+445,    yysvec+20,    yyvstop+672,
  2638. yycrank+441,    yysvec+20,    yyvstop+674,
  2639. yycrank+432,    yysvec+20,    yyvstop+676,
  2640. yycrank+431,    yysvec+20,    yyvstop+678,
  2641. yycrank+0,    yysvec+20,    yyvstop+680,
  2642. yycrank+434,    yysvec+20,    yyvstop+683,
  2643. yycrank+433,    yysvec+20,    yyvstop+685,
  2644. yycrank+0,    yysvec+20,    yyvstop+687,
  2645. yycrank+436,    yysvec+20,    yyvstop+690,
  2646. yycrank+0,    yysvec+20,    yyvstop+692,
  2647. yycrank+454,    yysvec+20,    yyvstop+695,
  2648. yycrank+437,    yysvec+20,    yyvstop+697,
  2649. yycrank+438,    yysvec+20,    yyvstop+699,
  2650. yycrank+440,    yysvec+20,    yyvstop+701,
  2651. yycrank+454,    yysvec+20,    yyvstop+704,
  2652. yycrank+455,    yysvec+20,    yyvstop+706,
  2653. yycrank+460,    yysvec+20,    yyvstop+708,
  2654. yycrank+461,    yysvec+20,    yyvstop+710,
  2655. yycrank+458,    yysvec+20,    yyvstop+712,
  2656. yycrank+458,    yysvec+20,    yyvstop+714,
  2657. yycrank+0,    yysvec+20,    yyvstop+716,
  2658. yycrank+453,    yysvec+20,    yyvstop+719,
  2659. yycrank+454,    yysvec+20,    yyvstop+721,
  2660. yycrank+453,    yysvec+20,    yyvstop+723,
  2661. yycrank+459,    yysvec+20,    yyvstop+725,
  2662. yycrank+0,    yysvec+20,    yyvstop+727,
  2663. yycrank+465,    yysvec+20,    yyvstop+730,
  2664. yycrank+461,    yysvec+20,    yyvstop+732,
  2665. yycrank+450,    yysvec+20,    yyvstop+734,
  2666. yycrank+452,    yysvec+20,    yyvstop+736,
  2667. yycrank+461,    yysvec+20,    yyvstop+738,
  2668. yycrank+465,    yysvec+20,    yyvstop+740,
  2669. yycrank+463,    yysvec+20,    yyvstop+742,
  2670. yycrank+460,    yysvec+20,    yyvstop+744,
  2671. yycrank+457,    yysvec+20,    yyvstop+746,
  2672. yycrank+458,    yysvec+20,    yyvstop+748,
  2673. yycrank+0,    yysvec+20,    yyvstop+750,
  2674. yycrank+464,    yysvec+20,    yyvstop+753,
  2675. yycrank+466,    yysvec+20,    yyvstop+755,
  2676. yycrank+0,    yysvec+20,    yyvstop+757,
  2677. yycrank+459,    yysvec+20,    yyvstop+760,
  2678. yycrank+467,    yysvec+20,    yyvstop+762,
  2679. yycrank+0,    yysvec+20,    yyvstop+764,
  2680. yycrank+468,    yysvec+20,    yyvstop+767,
  2681. yycrank+470,    yysvec+20,    yyvstop+769,
  2682. yycrank+471,    yysvec+20,    yyvstop+771,
  2683. yycrank+474,    yysvec+20,    yyvstop+773,
  2684. yycrank+482,    yysvec+20,    yyvstop+775,
  2685. yycrank+484,    yysvec+20,    yyvstop+777,
  2686. yycrank+480,    yysvec+20,    yyvstop+779,
  2687. yycrank+0,    yysvec+20,    yyvstop+781,
  2688. yycrank+0,    yysvec+20,    yyvstop+784,
  2689. yycrank+489,    yysvec+20,    yyvstop+787,
  2690. yycrank+471,    yysvec+20,    yyvstop+789,
  2691. yycrank+491,    yysvec+20,    yyvstop+791,
  2692. yycrank+484,    yysvec+20,    yyvstop+793,
  2693. yycrank+485,    yysvec+20,    yyvstop+795,
  2694. yycrank+479,    yysvec+20,    yyvstop+797,
  2695. yycrank+495,    yysvec+20,    yyvstop+799,
  2696. yycrank+0,    yysvec+20,    yyvstop+801,
  2697. yycrank+494,    yysvec+20,    yyvstop+804,
  2698. yycrank+489,    yysvec+20,    yyvstop+806,
  2699. yycrank+0,    yysvec+20,    yyvstop+808,
  2700. yycrank+498,    yysvec+20,    yyvstop+811,
  2701. yycrank+0,    yysvec+20,    yyvstop+813,
  2702. yycrank+0,    yysvec+20,    yyvstop+816,
  2703. yycrank+480,    yysvec+20,    yyvstop+819,
  2704. yycrank+483,    yysvec+20,    yyvstop+821,
  2705. yycrank+488,    yysvec+20,    yyvstop+823,
  2706. yycrank+494,    yysvec+20,    yyvstop+825,
  2707. yycrank+498,    yysvec+20,    yyvstop+827,
  2708. yycrank+500,    yysvec+20,    yyvstop+829,
  2709. yycrank+499,    yysvec+20,    yyvstop+831,
  2710. yycrank+492,    yysvec+20,    yyvstop+833,
  2711. yycrank+503,    yysvec+20,    yyvstop+835,
  2712. yycrank+495,    yysvec+20,    yyvstop+837,
  2713. yycrank+496,    yysvec+20,    yyvstop+839,
  2714. yycrank+493,    yysvec+20,    yyvstop+841,
  2715. yycrank+497,    yysvec+20,    yyvstop+843,
  2716. yycrank+508,    yysvec+20,    yyvstop+845,
  2717. yycrank+509,    yysvec+20,    yyvstop+847,
  2718. yycrank+0,    yysvec+20,    yyvstop+849,
  2719. yycrank+510,    yysvec+20,    yyvstop+852,
  2720. yycrank+0,    yysvec+20,    yyvstop+854,
  2721. yycrank+502,    yysvec+20,    yyvstop+857,
  2722. yycrank+0,    yysvec+20,    yyvstop+859,
  2723. yycrank+508,    yysvec+20,    yyvstop+862,
  2724. yycrank+500,    yysvec+20,    yyvstop+864,
  2725. yycrank+501,    yysvec+20,    yyvstop+866,
  2726. yycrank+513,    yysvec+20,    yyvstop+868,
  2727. yycrank+0,    yysvec+20,    yyvstop+870,
  2728. yycrank+0,    yysvec+20,    yyvstop+873,
  2729. yycrank+499,    yysvec+20,    yyvstop+876,
  2730. yycrank+518,    yysvec+20,    yyvstop+878,
  2731. yycrank+512,    yysvec+20,    yyvstop+880,
  2732. yycrank+509,    yysvec+20,    yyvstop+882,
  2733. yycrank+517,    yysvec+20,    yyvstop+884,
  2734. yycrank+523,    yysvec+20,    yyvstop+886,
  2735. yycrank+524,    yysvec+20,    yyvstop+888,
  2736. yycrank+514,    yysvec+20,    yyvstop+890,
  2737. yycrank+521,    yysvec+20,    yyvstop+892,
  2738. yycrank+517,    yysvec+20,    yyvstop+894,
  2739. yycrank+512,    yysvec+20,    yyvstop+896,
  2740. yycrank+507,    yysvec+20,    yyvstop+898,
  2741. yycrank+530,    yysvec+20,    yyvstop+900,
  2742. yycrank+530,    yysvec+20,    yyvstop+902,
  2743. yycrank+531,    yysvec+20,    yyvstop+904,
  2744. yycrank+534,    yysvec+20,    yyvstop+906,
  2745. yycrank+516,    yysvec+20,    yyvstop+908,
  2746. yycrank+530,    yysvec+20,    yyvstop+910,
  2747. yycrank+0,    yysvec+20,    yyvstop+912,
  2748. yycrank+520,    yysvec+20,    yyvstop+915,
  2749. yycrank+527,    yysvec+20,    yyvstop+917,
  2750. yycrank+0,    yysvec+20,    yyvstop+919,
  2751. yycrank+535,    yysvec+20,    yyvstop+922,
  2752. yycrank+539,    yysvec+20,    yyvstop+924,
  2753. yycrank+535,    yysvec+20,    yyvstop+926,
  2754. yycrank+527,    yysvec+20,    yyvstop+928,
  2755. yycrank+532,    yysvec+20,    yyvstop+930,
  2756. yycrank+0,    yysvec+20,    yyvstop+932,
  2757. yycrank+0,    yysvec+20,    yyvstop+935,
  2758. yycrank+0,    yysvec+20,    yyvstop+938,
  2759. yycrank+542,    yysvec+20,    yyvstop+941,
  2760. yycrank+0,    yysvec+20,    yyvstop+943,
  2761. yycrank+0,    yysvec+20,    yyvstop+946,
  2762. yycrank+531,    yysvec+20,    yyvstop+949,
  2763. yycrank+538,    yysvec+20,    yyvstop+951,
  2764. yycrank+546,    yysvec+20,    yyvstop+953,
  2765. yycrank+536,    yysvec+20,    yyvstop+955,
  2766. yycrank+548,    yysvec+20,    yyvstop+957,
  2767. yycrank+546,    yysvec+20,    yyvstop+959,
  2768. yycrank+533,    yysvec+20,    yyvstop+961,
  2769. yycrank+547,    yysvec+20,    yyvstop+963,
  2770. yycrank+0,    yysvec+20,    yyvstop+965,
  2771. yycrank+543,    yysvec+20,    yyvstop+968,
  2772. yycrank+534,    yysvec+20,    yyvstop+970,
  2773. yycrank+556,    yysvec+20,    yyvstop+972,
  2774. yycrank+545,    yysvec+20,    yyvstop+974,
  2775. yycrank+556,    yysvec+20,    yyvstop+976,
  2776. yycrank+553,    yysvec+20,    yyvstop+978,
  2777. yycrank+0,    yysvec+20,    yyvstop+980,
  2778. yycrank+549,    yysvec+20,    yyvstop+983,
  2779. yycrank+559,    yysvec+20,    yyvstop+985,
  2780. yycrank+560,    yysvec+20,    yyvstop+987,
  2781. yycrank+554,    yysvec+20,    yyvstop+989,
  2782. yycrank+559,    yysvec+20,    yyvstop+991,
  2783. yycrank+0,    yysvec+20,    yyvstop+993,
  2784. yycrank+0,    yysvec+20,    yyvstop+996,
  2785. yycrank+0,    yysvec+20,    yyvstop+999,
  2786. yycrank+566,    yysvec+20,    yyvstop+1002,
  2787. yycrank+0,    yysvec+20,    yyvstop+1004,
  2788. yycrank+551,    yysvec+20,    yyvstop+1007,
  2789. yycrank+550,    yysvec+20,    yyvstop+1009,
  2790. yycrank+548,    yysvec+20,    yyvstop+1011,
  2791. yycrank+567,    yysvec+20,    yyvstop+1013,
  2792. yycrank+561,    yysvec+20,    yyvstop+1015,
  2793. yycrank+554,    yysvec+20,    yyvstop+1017,
  2794. yycrank+0,    yysvec+20,    yyvstop+1019,
  2795. yycrank+566,    yysvec+20,    yyvstop+1022,
  2796. yycrank+571,    yysvec+20,    yyvstop+1024,
  2797. yycrank+563,    yysvec+20,    yyvstop+1026,
  2798. yycrank+0,    yysvec+20,    yyvstop+1028,
  2799. yycrank+573,    yysvec+20,    yyvstop+1031,
  2800. yycrank+574,    yysvec+20,    yyvstop+1033,
  2801. yycrank+562,    yysvec+20,    yyvstop+1035,
  2802. yycrank+0,    yysvec+20,    yyvstop+1037,
  2803. yycrank+560,    yysvec+20,    yyvstop+1040,
  2804. yycrank+579,    yysvec+20,    yyvstop+1042,
  2805. yycrank+0,    yysvec+20,    yyvstop+1044,
  2806. yycrank+581,    yysvec+20,    yyvstop+1047,
  2807. yycrank+579,    yysvec+20,    yyvstop+1049,
  2808. yycrank+0,    yysvec+20,    yyvstop+1051,
  2809. yycrank+564,    yysvec+20,    yyvstop+1054,
  2810. yycrank+567,    yysvec+20,    yyvstop+1056,
  2811. yycrank+0,    yysvec+20,    yyvstop+1058,
  2812. yycrank+0,    yysvec+20,    yyvstop+1061,
  2813. yycrank+0,    yysvec+20,    yyvstop+1064,
  2814. yycrank+579,    yysvec+20,    yyvstop+1067,
  2815. yycrank+585,    yysvec+20,    yyvstop+1069,
  2816. yycrank+0,    yysvec+20,    yyvstop+1071,
  2817. yycrank+582,    yysvec+20,    yyvstop+1074,
  2818. yycrank+578,    yysvec+20,    yyvstop+1076,
  2819. yycrank+0,    yysvec+20,    yyvstop+1078,
  2820. yycrank+572,    yysvec+20,    yyvstop+1081,
  2821. yycrank+573,    yysvec+20,    yyvstop+1084,
  2822. yycrank+568,    yysvec+20,    yyvstop+1086,
  2823. yycrank+585,    yysvec+20,    yyvstop+1088,
  2824. yycrank+0,    yysvec+20,    yyvstop+1090,
  2825. yycrank+575,    yysvec+20,    yyvstop+1093,
  2826. yycrank+0,    yysvec+20,    yyvstop+1095,
  2827. yycrank+0,    yysvec+20,    yyvstop+1098,
  2828. yycrank+0,    yysvec+20,    yyvstop+1101,
  2829. yycrank+0,    yysvec+20,    yyvstop+1104,
  2830. yycrank+0,    yysvec+20,    yyvstop+1107,
  2831. yycrank+0,    yysvec+20,    yyvstop+1110,
  2832. yycrank+0,    yysvec+20,    yyvstop+1113,
  2833. yycrank+0,    yysvec+20,    yyvstop+1116,
  2834. yycrank+576,    yysvec+20,    yyvstop+1119,
  2835. yycrank+588,    yysvec+20,    yyvstop+1121,
  2836. yycrank+0,    yysvec+20,    yyvstop+1123,
  2837. yycrank+583,    yysvec+20,    yyvstop+1126,
  2838. yycrank+585,    yysvec+20,    yyvstop+1128,
  2839. yycrank+0,    yysvec+20,    yyvstop+1130,
  2840. 0,    0,    0};
  2841. struct yywork *yytop = yycrank+695;
  2842. struct yysvf *yybgin = yysvec+1;
  2843. char yymatch[] = {
  2844. 00  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
  2845. 01  ,011 ,01  ,01  ,01  ,01  ,01  ,01  ,
  2846. 01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
  2847. 01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
  2848. 011 ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
  2849. 01  ,01  ,01  ,01  ,01  ,01  ,'.' ,'.' ,
  2850. '0' ,'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,
  2851. '0' ,'0' ,01  ,01  ,01  ,01  ,01  ,01  ,
  2852. 01  ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
  2853. 'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
  2854. 'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
  2855. 'A' ,'A' ,'A' ,01  ,01  ,01  ,01  ,'A' ,
  2856. 01  ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
  2857. 'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
  2858. 'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
  2859. 'A' ,'A' ,'A' ,01  ,01  ,01  ,01  ,01  ,
  2860. 0};
  2861. char yyextra[] = {
  2862. 0,0,0,0,0,0,0,0,
  2863. 0,0,0,0,0,0,0,0,
  2864. 0,0,0,0,0,0,0,0,
  2865. 0,0,0,0,0,0,0,0,
  2866. 0,0,0,0,0,0,0,0,
  2867. 0,0,0,0,0,0,0,0,
  2868. 0,0,0,0,0,0,0,0,
  2869. 0,0,0,0,0,0,0,0,
  2870. 0,0,0,0,0,0,0,0,
  2871. 0,0,0,0,0,0,0,0,
  2872. 0,0,0,0,0,0,0,0,
  2873. 0,0,0,0,0,0,0,0,
  2874. 0,0,0,0,0,0,0,0,
  2875. 0,0,0,0,0,0,0,0,
  2876. 0};
  2877. #ifndef lint
  2878. static    char ncform_sccsid[] = "@(#)ncform 1.6 88/02/08 SMI"; /* from S5R2 1.2 */
  2879. #endif
  2880.  
  2881. int yylineno =1;
  2882. # define YYU(x) x
  2883. # define NLSTATE yyprevious=YYNEWLINE
  2884. char yytext[YYLMAX];
  2885. struct yysvf *yylstate [YYLMAX], **yylsp, **yyolsp;
  2886. char yysbuf[YYLMAX];
  2887. char *yysptr = yysbuf;
  2888. int *yyfnd;
  2889. extern struct yysvf *yyestate;
  2890. int yyprevious = YYNEWLINE;
  2891. yylook(){
  2892.     register struct yysvf *yystate, **lsp;
  2893.     register struct yywork *yyt;
  2894.     struct yysvf *yyz;
  2895.     int yych, yyfirst;
  2896.     struct yywork *yyr;
  2897. # ifdef LEXDEBUG
  2898.     int debug;
  2899. # endif
  2900.     char *yylastch;
  2901.     /* start off machines */
  2902. # ifdef LEXDEBUG
  2903.     debug = 0;
  2904. # endif
  2905.     yyfirst=1;
  2906.     if (!yymorfg)
  2907.         yylastch = yytext;
  2908.     else {
  2909.         yymorfg=0;
  2910.         yylastch = yytext+yyleng;
  2911.         }
  2912.     for(;;){
  2913.         lsp = yylstate;
  2914.         yyestate = yystate = yybgin;
  2915.         if (yyprevious==YYNEWLINE) yystate++;
  2916.         for (;;){
  2917. # ifdef LEXDEBUG
  2918.             if(debug)fprintf(yyout,"state %d\n",yystate-yysvec-1);
  2919. # endif
  2920.             yyt = yystate->yystoff;
  2921.             if(yyt == yycrank && !yyfirst){  /* may not be any transitions */
  2922.                 yyz = yystate->yyother;
  2923.                 if(yyz == 0)break;
  2924.                 if(yyz->yystoff == yycrank)break;
  2925.                 }
  2926.             *yylastch++ = yych = input();
  2927.             yyfirst=0;
  2928.         tryagain:
  2929. # ifdef LEXDEBUG
  2930.             if(debug){
  2931.                 fprintf(yyout,"char ");
  2932.                 allprint(yych);
  2933.                 putchar('\n');
  2934.                 }
  2935. # endif
  2936.             yyr = yyt;
  2937.             if ( (int)yyt > (int)yycrank){
  2938.                 yyt = yyr + yych;
  2939.                 if (yyt <= yytop && yyt->verify+yysvec == yystate){
  2940.                     if(yyt->advance+yysvec == YYLERR)    /* error transitions */
  2941.                         {unput(*--yylastch);break;}
  2942.                     *lsp++ = yystate = yyt->advance+yysvec;
  2943.                     goto contin;
  2944.                     }
  2945.                 }
  2946. # ifdef YYOPTIM
  2947.             else if((int)yyt < (int)yycrank) {        /* r < yycrank */
  2948.                 yyt = yyr = yycrank+(yycrank-yyt);
  2949. # ifdef LEXDEBUG
  2950.                 if(debug)fprintf(yyout,"compressed state\n");
  2951. # endif
  2952.                 yyt = yyt + yych;
  2953.                 if(yyt <= yytop && yyt->verify+yysvec == yystate){
  2954.                     if(yyt->advance+yysvec == YYLERR)    /* error transitions */
  2955.                         {unput(*--yylastch);break;}
  2956.                     *lsp++ = yystate = yyt->advance+yysvec;
  2957.                     goto contin;
  2958.                     }
  2959.                 yyt = yyr + YYU(yymatch[yych]);
  2960. # ifdef LEXDEBUG
  2961.                 if(debug){
  2962.                     fprintf(yyout,"try fall back character ");
  2963.                     allprint(YYU(yymatch[yych]));
  2964.                     putchar('\n');
  2965.                     }
  2966. # endif
  2967.                 if(yyt <= yytop && yyt->verify+yysvec == yystate){
  2968.                     if(yyt->advance+yysvec == YYLERR)    /* error transition */
  2969.                         {unput(*--yylastch);break;}
  2970.                     *lsp++ = yystate = yyt->advance+yysvec;
  2971.                     goto contin;
  2972.                     }
  2973.                 }
  2974.             if ((yystate = yystate->yyother) && (yyt= yystate->yystoff) != yycrank){
  2975. # ifdef LEXDEBUG
  2976.                 if(debug)fprintf(yyout,"fall back to state %d\n",yystate-yysvec-1);
  2977. # endif
  2978.                 goto tryagain;
  2979.                 }
  2980. # endif
  2981.             else
  2982.                 {unput(*--yylastch);break;}
  2983.         contin:
  2984. # ifdef LEXDEBUG
  2985.             if(debug){
  2986.                 fprintf(yyout,"state %d char ",yystate-yysvec-1);
  2987.                 allprint(yych);
  2988.                 putchar('\n');
  2989.                 }
  2990. # endif
  2991.             ;
  2992.             }
  2993. # ifdef LEXDEBUG
  2994.         if(debug){
  2995.             fprintf(yyout,"stopped at %d with ",*(lsp-1)-yysvec-1);
  2996.             allprint(yych);
  2997.             putchar('\n');
  2998.             }
  2999. # endif
  3000.         while (lsp-- > yylstate){
  3001.             *yylastch-- = 0;
  3002.             if (*lsp != 0 && (yyfnd= (*lsp)->yystops) && *yyfnd > 0){
  3003.                 yyolsp = lsp;
  3004.                 if(yyextra[*yyfnd]){        /* must backup */
  3005.                     while(yyback((*lsp)->yystops,-*yyfnd) != 1 && lsp > yylstate){
  3006.                         lsp--;
  3007.                         unput(*yylastch--);
  3008.                         }
  3009.                     }
  3010.                 yyprevious = YYU(*yylastch);
  3011.                 yylsp = lsp;
  3012.                 yyleng = yylastch-yytext+1;
  3013.                 yytext[yyleng] = 0;
  3014. # ifdef LEXDEBUG
  3015.                 if(debug){
  3016.                     fprintf(yyout,"\nmatch ");
  3017.                     sprint(yytext);
  3018.                     fprintf(yyout," action %d\n",*yyfnd);
  3019.                     }
  3020. # endif
  3021.                 return(*yyfnd++);
  3022.                 }
  3023.             unput(*yylastch);
  3024.             }
  3025.         if (yytext[0] == 0  /* && feof(yyin) */)
  3026.             {
  3027.             yysptr=yysbuf;
  3028.             return(0);
  3029.             }
  3030.         yyprevious = yytext[0] = input();
  3031.         if (yyprevious>0)
  3032.             output(yyprevious);
  3033.         yylastch=yytext;
  3034. # ifdef LEXDEBUG
  3035.         if(debug)putchar('\n');
  3036. # endif
  3037.         }
  3038.     }
  3039. yyback(p, m)
  3040.     int *p;
  3041. {
  3042. if (p==0) return(0);
  3043. while (*p)
  3044.     {
  3045.     if (*p++ == m)
  3046.         return(1);
  3047.     }
  3048. return(0);
  3049. }
  3050.     /* the following are only used in the lex library */
  3051. yyinput(){
  3052.     return(input());
  3053.     }
  3054. yyoutput(c)
  3055.   int c; {
  3056.     output(c);
  3057.     }
  3058. yyunput(c)
  3059.    int c; {
  3060.     unput(c);
  3061.     }
  3062.